package com.jic.manager.mapper;

import java.lang.Long;
import java.util.List;

import com.jic.manager.entity.Mestore;
import com.jic.manager.request.MestorePageRequest;
import com.jic.manager.request.MestoreRequest;
import com.jic.manager.request.StoreListGetReuqest;

import com.jic.manager.response.MestoreResponse;
import com.jic.product.after.request.MeStoreListRequest;
import com.jic.product.after.response.MeStoreListResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 店铺基本信息
 * @author : 
 * @email : 
 * @since : 2020-02-26 09:40:07
 * @version : v1.0.0
 */
@Mapper
public interface  MestoreMapper {

    long insert(Mestore mestore);

    long delete(Long id);

    long update(@Param("mestore") Mestore mestoreRequest);

    Mestore queryByPrimaryKey(Long id);

    List<Mestore> query(Mestore mestore);

    List<MestoreRequest> queryPage(@Param("startIndex") int startIndex, @Param("limit") int limit, @Param("mestore") MestoreRequest mestore);

    long queryPageCount(@Param("mestore") MestoreRequest mestore);

    MestoreResponse getStoreInfo(@Param("mestore") MestoreRequest mestoreRequest);

    List<MestoreResponse> queryStoreInfoPage(@Param("startIndex") int startIndex, @Param("limit") int limit, @Param("mestoreRequest") MestoreRequest mestoreRequest);

    List<MestoreResponse> queryStoreInfoNoPage(MestoreRequest mestoreRequest);

    List<MestoreResponse> queryStoreInfoPageByOrgNumber(@Param("startIndex") int startIndex, @Param("limit") int limit, @Param("mestoreRequest") MestoreRequest mestoreRequest);

    Long queryStoreInfoPageByOrgNumberCount(@Param("mestoreRequest") MestoreRequest mestoreRequest);

    long queryStoreInfoPageCount( @Param("mestoreRequest") MestoreRequest mestoreRequest);

    List<MeStoreListRequest> getStoreList();

    //通过商家id集合查询店铺
    List<MestoreResponse> getByMerchantIds(@Param("startIndex") int startIndex, @Param("limit") int limit, @Param("request") StoreListGetReuqest storeListGetReuqest);

    //通过商家id集合查询店铺分页
    long getByMerchantCount(@Param("request") StoreListGetReuqest storeListGetReuqest);

    //导入店铺mapper
     long importStore(Mestore mestore);

     //卡奥斯查询店铺列表
    List<MestoreResponse> getStorePage(@Param("startIndex") int startIndex, @Param("limit") int limit, @Param("pageRequest")MestorePageRequest mestorePageRequest);

    //卡奥斯查询店铺列表分压
     long getStorePageCount(@Param("pageRequest") MestorePageRequest mestorePageRequest);

     //通过商家id集合查询店铺无分页
     List<MestoreResponse> findByIds(@Param("request") StoreListGetReuqest storeListGetReuqest);

    /**
     * 根据第三方店铺编码查询
     * @param mestorePageRequest
     * @return
     */
    MestoreResponse getStoreInfoByThirdStoreCode( @Param("pageRequest")MestorePageRequest mestorePageRequest);


    /**
     * 对接卡奥斯修改店铺
     * @param mestoreRequest
     * @return
     */
    long updateThridStore(@Param("mestore") Mestore mestoreRequest);



    MeStoreListResponse queryByStoreCode(String  code);

    //
    List<Mestore> queryStoreList( MestoreRequest mestoreRequest);

}